/**
	 *  需要滑动的内容子布局是否是唯一的ul
	 */
	function isChildrenUl() {
		var ulLength = $('.damping-content').children('ul').length;
		if (ulLength == 1) {
			return true;
		} else {
			return false;
		}
	}
	$(function() {
		var startY;
		// 0 代表 向下拉起 1 代表向上拉
		var state = 0;
		// 是否滑动到最顶部
		var isScrollTopState = false;
		//  是否滑动到最底部
		var isScrollBotState = false;
		//  阻尼内容对象
		var dampingObj = $('.damping-content');
		//  阻尼系数
		var dampingCoefficient = 200;
		// 手指开始触摸
		dampingObj.on('touchstart', function(e) {
			// 起始的触摸Y 位置
			startY = e.originalEvent.changedTouches[0].pageY;
		})
		// 手指滑动
		dampingObj.on('touchmove', function(e) {
			var moveEndY = e.originalEvent.changedTouches[0].pageY;
			// 滑动的距离
			var distanceY = moveEndY - startY;
			//  内容滑动距离
			var scrollTop = dampingObj.scrollTop();
			//  需要滑动的内容子布局是否是唯一的ul
			var isChildrenUlState = isChildrenUl();
			if (distanceY > 0) {
				// 向下拉起
				state = 0;
				if (isChildrenUlState) {
					//相当于内容里面是个列表
					if (isScrollTopState) {
						dampingObj.offset({
							top: distanceY
						})
					} else if (scrollTop == 0) {
						// 滑动的距离 为0 代表内容并没有滑动(如果内容是个 列表 ul ，可能是最开始的状态)
						dampingObj.offset({
							top: distanceY
						})
					}
				} else {
					dampingObj.offset({
						top: distanceY
					})
				}


			} else {
				state = 1;
				// 向上拉起
				if (isChildrenUlState) {
					if (isScrollBotState) {
						dampingObj.offset({
							top: distanceY
						})
					}
				} else {
					dampingObj.offset({
						top: distanceY
					})
				}

			}

		})
		//内容滑动监听
		dampingObj.scroll(function(event) {
			var t = event.currentTarget.scrollTop;
			var s = event.currentTarget.scrollHeight;
			var c = event.currentTarget.clientHeight;
			// 当列表滑动的时候不允许 拉起整体布局（当到达底部或顶部的时候）
			isScrollBotState = false;
			isScrollTopState = false;
			// 将 t 和 c的和 做 向上取整 ,因为发现当滑动到底部可能 (c 是200 t+c 是 199.55466)
			if (Math.ceil(t + c) >= s) {
				//到达底部
				isScrollBotState = true;
			}
			if (t <= 0) {
				//到达顶部
				isScrollTopState = true;
			}

		});

		// 手指抬起
		dampingObj.on('touchend', function(e) {

			$({
				// 起始值
				countNum: dampingObj.offset().top
			}).animate({
				// 最终值
				countNum: 0
			}, {
				// 动画持续时间
				duration: dampingCoefficient,
				easing: "linear",
				step: function() {
					// 设置每步动画计算的数值
					var val = ' translate(0, ' + Math.floor(this.countNum) + 'px)'
					dampingObj.offset({
						top: Math.floor(this.countNum)
					})
				},
				complete: function() {
					// 设置动画结束的数值
					var val = ' translate(0, ' + Math.floor(this.countNum) + 'px)'
					dampingObj.offset({
						top: Math.floor(this.countNum)
					})

				}
			});

		});

	});
